package com.power.sifa.correction.service;


import com.power.sifa.correction.model.Crc_person;
import org.springframework.data.domain.Page;
import com.power.sifa.correction.model.Crc_group_person;
import com.power.sifa.correction.model.pageInfo.Crc_group_personPageInfo;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 *  社区矫正分组内人员业务层
 */
public interface Crc_group_personService {

    /**
     *  根据id获取社区矫正分组内人员对象
     */
    Crc_group_person getById(Serializable id);

    /**
     *  根据传入社区矫正分组内人员对象进行新增或更新操作
     */
    void saveOrUpdate(Crc_group_person crc_group_person);

    /**
     *  根据id删除社区矫正分组内人员
     */
    void removeById(Serializable id);

    /**
     *  根据分组Id删除社区矫正绑定人员
     */
    void removeByGroupId(String groupId);

    /**
     *  根据传入条件查询社区矫正分组内人员分页结果
     */
    Page<Crc_group_person> findAll(Crc_group_personPageInfo pageInfo);
    
    /**
     * 查询全部社区矫正分组内人员
     */
    List<Crc_group_person> findAll();
    
     /**
     *  根据id批量删除社区矫正分组内人员
     */
    void removeByIds(List<Integer> list);
    
     /**
     *  批量保存社区矫正分组内人员
     */
    void saveAll(List<Crc_group_person> list);


    /**
     * 通过人员id和分组id进行删除
     * @param personId
     * @param groupId
     */
    void deleteByPersonId(String personId, String groupId);


    /**
     * 通过人员查询人群
     * @param personId
     * @return
     */
    List<Crc_group_person> findGroupByPersonId(String personId);


    /**
     * 通过人员查询人群
     * @param personIds
     * @return
     */
    List<Crc_group_person> findGroupByPersonIds(List<String> personIds);

    /**
     * 通过人群查询人员
     * @param groupId
     * @return
     */
    List<Crc_group_person> findPersonByGroupId(String groupId);

    /**
     * 通过人群查询人员
     * @param groupIds
     * @return
     */
    List<Crc_group_person> findPersonByGroupIds(List<String>  groupIds);
}
